package com.rf.richfitwheel.dyn.business.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.mybatisflex.core.service.IService;
import com.rf.richfitwheel.dyn.business.entity.SysBusinessDesigner;

import java.util.Map;

/**
 * 应用设计记录 服务层。
 *
 * @author richfitwheel
 * @since 2025-02-18
 */
public interface SysBusinessDesignerService extends IService<SysBusinessDesigner> {

    /**
     * 根据id获取表单信息（包含表单下的组件信息）
     * @param designerId 表单id
     * @return 表单信息
     */
    SysBusinessDesigner getSysBusinessDesignerHasDetail(String designerId);

    /**
     * 根据表单设计ID获取主表表结构与前端元素之间的对应关系
     * @param designerId 表单设计ID
     * @return 对应关系
     */
    Map<String, Map<String, String>> getMainTableMappingByDesignerId(String designerId) throws JsonProcessingException;

    /**
     * 根据编码获取最新版本已发布的信息
     * @param code 表单设计编码
     * @return 表单设计详情
     */
    SysBusinessDesigner getLatestInfoByCode(String code);
}
